Many electronic user devices such as laptops, tablets, and smart phones support the installation and execution of applications, or “apps”. Apps are software programs that carry out operations to allow a user to perform a specific task. Apps are typically designed based on assumptions about the hardware or software of the devices that will be running the apps. These assumptions can be communicated to the user as system requirements. In many instances, it is incumbent on the user to have prior knowledge about their device and to evaluate the system requirements in relation to the characteristics of their device.
To facilitate installation of software on various types of user devices, application developers offer multiple versions of their software. For example, an application developer offers a version for each of the following operating systems: WINDOWS, ANDROID, iOS etc. In some instances, the application developer specifies particular models of user devices on which each of the versions of the application are configured to run.
Some application vendors (e.g., iTunes, Google Play, Windows Store) are configured to receive a limited amount of data about a user device such as model, operating system, the presence of a particular I/O device (e.g., a front-facing camera or motion sensor). The application vendor can pre-filter the available apps so that only the apps that are likely to be able to be executed by the user device, given what the vendor knows about the user device, are presented to the user. Existing customization of apps is limited to customizing the app based on the available visual display of the device and is based on user preferences. For example, if a user has provided a preference for HD video, then an application vendor can select an HD plugin or component for that download of the app.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.